package com.source.lightfowl.basedata.service;

import com.source.lightfowl.VO.*;
import com.source.lightfowl.VO.chart.*;
import com.source.lightfowl.basedata.entity.PoultryCategory;
import com.source.lightfowl.basedata.entity.Poultry_Parent;

import java.math.BigInteger;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description:
 * @Author: Faink
 * @CreateTime: 2020/9/11 19:28
 */
public interface PoultrySalesChartService {
    /**
     * 查找销售去向-用于柱状图（弃）
     */
    List<PoultryChartVO> findAllSalesData(int id);

    /**
     * 查找销售去向-用于禽类状态表
     */
    List<PoultryChartVO> findParentSalesSort(int id);

    /**
     * 查找销售去向 by市场id
     */
    List<PoultrySalesVO> findAllSales(int id);

    /**
     * 查找销售去向回显 byid
     */
    List<PoultrySalesVO> findAllSalesById(String id);

    /**
     * 查找销售去向 by脚标机id
     */
    List<RecordToVO> findAllRecordTo(int id);

    /**
     * 搜索所有父级禽类名
     */
    List<Poultry_Parent> findAllParent();

    /**
     * 按父级禽类搜索其子禽类
     */
    List<PoultryCategory> findPoultryByParentId(String id);

    /**
     * 查出本市场中各父级禽类共累计卖出量
     */
    Map<String, BigInteger> findCountOfParent(int houseId);

    /**
     * 查出今年本市场中各父级禽类共累计卖出量
     */
    Map<String, BigInteger> findCountOfParentThisYear(int houseId);

    /**
     * 按年制返回该市场父级禽类销量
     */
    Map<String, BigInteger> findSalesInYears(String parentId, int houseId);

    /**
     * 查找销售去向-用于柱状图
     */
    ParentPoultryBarChartVO findParentSalesDataTenDaysOfMonthAgo(int houseId, String parentId);

    /**
     * 查找前三个月每个月的销售冠军市场-用于柱状图
     */
    List<MaxSaleHouseVO> findMaxSalesHouseThreeMonthAgo();

    /**
     * 今年父禽类销量占比饼图
     */
    List<SaleVO> findSaleCountThisYear();

    /**
     * 本市场今年父禽类销量占比饼图
     */
    List<SaleVO> findSaleCountThisYear(int houseId);

    /**
     * 本市场迄今为止父禽类销量
     */
    List<SaleVO> findSaleCount(int houseId);

    /**
     * 选定某个市场 ->各个父级禽类的销量by月-用于折线图
     */
    ParentsSaleInMonthOfYearVO findSaleOfParentByHouseInMonth(int houseId);

    /**
     * 选定某个市场为源 ->向去向市场的所有禽类交易量排名（前一个月）-用于首页禽类销售状态表
     */
    List<PoultrySalesTableVO> findBestSaleOfMarketOneMonthsAgo(int houseId, String parentId);

    /**
     * 选定源头市场 ->找到有交易的去向市场并显示源头市场的效率、去向市场成交量
     */
    List<HouseRelationVO> findRelationOfHouseInThisYear(int houseId);

    /**
     * 贴标历史查询 ->默认查找全部档口在近一个月内的每个父级禽类贴标数
     */
    List<SaleVO> findDefaultCount();

    /**
     * 贴标历史查询 ->默认查找全部档口在近一个月内的每个父级禽类贴标数(一行是每天)
     */
    List<DateSaleVO> findDefaultCountByDays();

    /**
     * 贴标历史查询 ->根据档口名字或者联系人的名字模糊匹配 查询某个时间段各父级贴标的数量
     */
    List<SaleVO> findCountByNameAndTime(String stallName,String linkName,String startDate,String endDate);

    /**
     * 贴标历史查询 ->根据档口名字或者联系人的名字模糊匹配 查询某个时间段各父级贴标的数量(一行是每天)
     */
    List<DateSaleVO> findCountByNameAndTimeByDays(String stallName,String linkName,String startDate,String endDate);
}
